import { defineConfig, ConfigEnv, UserConfigExport } from 'vite'
import vue from '@vitejs/plugin-vue'
// import { resolve } from 'path';   // 编辑器提示 path 模块找不到，可以cnpm i @types/node --dev 即可
import { fileURLToPath, URL } from 'node:url'
import { viteMockServe } from 'vite-plugin-mock'

// https://vitejs.dev/config/   
export default defineConfig({
  plugins: [
    vue(),
    viteMockServe({
      supportTs: true,
      mockPath: './src/mock'
    })],   //  默认配置
  
  /* 自定义配置 */
  // export default ({command }:ConfigEnv) :UserConfigExport =>({
  //   plugins: [
  //     vue(),
  //     viteMockServe({
  //       supportTs: true,
  //       mockPath: './src/mock',
  //       localEnabled: command ==='serve'
  //     })
  //   ], 

  resolve: {
    alias: {
      // '@': resolve(__dirname, 'src')    // 配置别名；将 @ 指向'src'目录
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    },
  },

  server: {
    port: 3000, // 设置服务启动的端口号；如果端口已经被使用，Vite 会自动尝试下一个可用的端口
    open: true, // 服务启动后自动打开浏览器
    proxy: {
      // 代理
      '/api': {
        target: '真实接口服务地址',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ''), // 注意代理地址的重写
      },
      // 可配置多个...
    },
  },
})
